#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
#include<QListWidgetItem>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    //先添加一些元素给list
    ui->listWidget->addItem("Qt");
    ui->listWidget->addItem("C");
    ui->listWidget->addItem("java");

    //在QListWidgetItem中可以设置字体属性，设置图标文字大小等状态
//    ui->listWidget->addItem(new QListWidgetItem("C++"));
//    ui->listWidget->addItem(new QListWidgetItem("C"));
//    ui->listWidget->addItem(new QListWidgetItem("Qt"));
}

Widget::~Widget()
{
    delete ui;
}


void Widget::on_pushButton_add_clicked()
{
    //先获取到输入框中的内容
    const QString& text = ui->lineEdit->text();
    //添加到list
    ui->listWidget->addItem(text);
    //添加到低n行前
//    int row = ui->listWidget->currentRow();
//    if(row < 0)
//    {
//        return;
//    }
//    ui->listWidget->insertItem(row, text);

}

void Widget::on_pushButton_delete_clicked()
{
    //获取到被选中的元素是哪个
    int row = ui->listWidget->currentRow();
    if(row < 0)
    {
        return;
    }
    else
    {
        ui->listWidget->takeItem(row);
    }
}

void Widget::on_listWidget_currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous)
{
    //通过这个槽函数来感知到变化
    if(current != nullptr)
    {
        qDebug() << current->text();//当前元素
    }
    if(previous != nullptr)
    {
        qDebug() << previous->text();//上一次选中的元素
    }
}
